package com.logic.modular.game.statistical.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 玩家统计池(PlayerStatisticalPool)表实体类
 *
 * @author cxy
 * @since 2024-11-05 14:29:30
 */
@ApiModel("玩家统计池")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@TableName(autoResultMap = true)
public class PlayerStatisticalPool extends Model<PlayerStatisticalPool> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.INPUT)
    @ApiModelProperty("玩家id")
    private Long playerId;

    @TableField(typeHandler = JacksonTypeHandler.class)
    public Map<Integer, Long> conditionValue = new HashMap<>();
    /**
     * 1	击败玩家  击败玩家的最后一个城池<p>
     * 2	击杀敌军	击杀敌方的兵力数量<p>
     * 3	攻占城池	占领的城池数<p>
     * 4	完成统一	统一<p>
     * 5	完成对局	完成的对局<p>
     * 6    累计游戏时间<p>
     * <p>
     * 20  武将满级数量<p>
     * 21  武将满星数量<p>
     * 22  获得传说武将数量<p>
     * 23  武将升星次数<p>
     *
     * <p>
     * 30  获得战法数量<p>
     * 31  获得满星战法数量<p>
     * <p>
     * 60  累计签到天数<p>
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    public List<Long> conditionValue2 = new ArrayList<>();

    @TableField(exist = false)
    private String info = " /**\n" +
            "     * 1\t击败玩家  击败玩家的最后一个城池<p>\n" +
            "     * 2\t击杀敌军\t击杀敌方的兵力数量<p>\n" +
            "     * 3\t攻占城池\t占领的城池数<p>\n" +
            "     * 4\t完成统一\t统一<p>\n" +
            "     * 5\t完成对局\t完成的对局<p>\n" +
            "     * 6    累计游戏时间<p>\n" +
            "     * <p>\n" +
            "     * 20  武将满级数量<p>\n" +
            "     * 21  武将满星数量<p>\n" +
            "     * 22  获得传说武将数量<p>\n" +
            "     * 23  武将升星次数<p>\n" +
            "     *\n" +
            "     * <p>\n" +
            "     * 30  获得战法数量<p>\n" +
            "     * 31  获得满星战法数量<p>\n" +
            "     * <p>\n" +
            "     * 41  累计获得装备数量<p>\n" +
            "     * 42  累计获得坐骑数量<p>\n" +
            "     * 43  累计获得银币数量<p>\n" +
            "     * <p>\n" +
            "     * 50  招募武将次数<p>\n" +
            "     * 51  技能抽卡次数<p>\n" +
            "     * <p>\n" +
            "     * 60  累计签到天数 \n"+
            "     * <p>\n" +
            "     * 80  小游戏通关\n" +
            "     */";

    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = -71867685972799926L;

    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.playerId;
    }
}

